import request from "@/utils/request";
import type { SubmitOrder, OrderResponseData,Qrcode,PayResult, UserInfoResponseData,CertationTypeResponseData,UserParams, UserOrderInfoResponseData, AllUserResponseData,AllOrderStateResponse, AddOrderUpdateUser } from "./type"

// 枚举地址
enum API{
    // 提交订单，获取订单号码接口
    SUBMITORDER_URL='/order/orderInfo/auth/submitOrder/',
    // 获取订单详情的数据
    GETORDERRINFO_URL='/order/orderInfo/auth/getOrderInfo/',
    // 取消订单的接口
    ORDERCANCEL_URL='/order/orderInfo/auth/cancelOrder/',
    // 获取支付订单二维码的接口
    QRCODE_URL='/order/weixin/createNative/',
    // 查询订单支付的结果
    PAYRESULT_URL='/order/weixin/queryPayStatus/',
    // 获取当前账号的用户信息
    USERINFO_URL='/user/auth/getUserInfo',
    // 获取证件类型的接口地址
    CERTIFICATIONTYPE_URL='/cmn/dict/findByDictCode/',
    // 用户认证的接口
    USERCERTATION_URL='/user/auth/userAuah',
    // 获取用户订单号的数据
    USERORDERINFO_URL='/order/orderInfo/auth/',
    // 获取全部就诊人的信息
    ALLUSER_URL='/user/patient/auth/findAll',
    // 获取订单的状态
    ORDERSTATE_URL='/order/orderInfo/auth/getStatusList',
    // 获取城市的数据
    CITY_URL='/cmn/dict/findByParentId/',
    // 新增就诊人接口
    ADDUSER_URL='/user/patient/auth/save',
    // 修改就诊人信息
    UPDATEUSER_URL='/user/patient/auth/update',
    // 删除就诊人信息
    DELETEUSER_URL='/user/patient/auth/remove/'
}
// 提交订单
export const reqSubmitOrder=(hoscode:string,scheduleId:string,patientId:number)=>request.post<any,SubmitOrder>(API.SUBMITORDER_URL+`${hoscode}/${scheduleId}/${patientId}`)
// 获取订单数据的接口
export const reqOrderInfo=(id:string)=>request.get<any,OrderResponseData>(API.GETORDERRINFO_URL+id)
// 取消订单
export const reqCancelOrder=(id:string)=>request.get<any,any>(API.ORDERCANCEL_URL+id)
// 获取支付的二维码接口
export const reqQrcode=(orderId:string)=>request.get<any,Qrcode>(API.QRCODE_URL+orderId)
// 查询订单支付的结果
export const reqQueryPayState=(orderId:string)=>request.get<any,PayResult>(API.PAYRESULT_URL+orderId)
// 获取昂起那用户信息的接口
export const reqUserInfo=()=>request.get<any,UserInfoResponseData>(API.USERINFO_URL)
// 获取证件类型的方法
export const reqCertationType=(certificatesType='certificatesType')=>request.get<any,CertationTypeResponseData>(API.CERTIFICATIONTYPE_URL+certificatesType)
// 用户认证接口
export const reqUserCertation=(data:UserParams)=>request.post<any,any>(API.USERCERTATION_URL,data)
// 获取订单数据接口
export const reqUserInfoOrder=(page:number,limit:number,patientId:string,orderStatus:string)=>request.get<any,UserOrderInfoResponseData>(API.USERORDERINFO_URL+`${page}/${limit}?patientId=${patientId}&orderStatus=${orderStatus}`)
// 获取全部就诊人的信息
export const reqAllUser = ()=>request.get<any,AllUserResponseData>(API.ALLUSER_URL)
// 获取全部订单的接口
export const reqOrderState=()=>request.get<any,AllOrderStateResponse>(API.ORDERSTATE_URL)
// 获取城市的数据
export const reqCity=(parentId:string)=>request.get<any,any>(API.CITY_URL+parentId)
// 新增与修改已有的就诊人接口方法
export const reqAddOrUpdateUser=(data:AddOrderUpdateUser)=>{
    if(data.id){
        return request.put<any,any>(API.UPDATEUSER_URL,data)
    }else{
        return request.post<any,any>(API.ADDUSER_URL,data)
    }
}
// 删除就诊人方法
export const reqRemoveUser=(id:number)=>request.delete<any,any>(API.DELETEUSER_URL+id)